Google Fit 是一個健康與健身資料平台,它能匯集來自各種穿戴裝置、應用程式的運動、睡眠、心率等健康數據。
因為我有在用XD
在 Google Cloud Platform (以下簡稱 GCP) 上建立新專案,建立時請自訂一個專案名稱。接著到「API 與服務」,啟用「Fitness API」
接著請完成相關設定
找到「API 與服務」 > 「OAuth 同意畫面」 > 「資料存取權」,在 「範圍」 頁面,點擊 「新增或移除範圍」,搜尋與 Google Fit 相關的功能。這些權限決定應用程式能讀取哪些類型的 Google Fit 資料。
在 「測試使用者」 (Test users) 頁面,點擊 「新增使用者」 (Add users)。輸入用來測試的 Google 帳號,然後點擊 「儲存」 (Save)。
這一步很重要!!如果沒有新增測試使用者,待會 「測試」的時候,會被拒絕。(「發布應用程式」(Publish App) 後,所有擁有 Google 帳號的使用者都可以使用這個應用程式,就不會有這個問題。)
選擇 「Web 應用程式」,並自訂名稱。在 「已授權的重新導向 URI」 欄位中,輸入這個應用程式回調網址。在本地端開發時,通常是 http://127.0.0.1:5000/oauth2callback
點擊「建立」,就會取得一組用戶端 ID (Client ID)&用戶端密鑰 (Client Secret),可以下載。
溫馨小提醒:
下載後,改檔名為「credentials.json」,和 main.py 一起放在同一層,稍後就會用到。
# 建立並啟用虛擬環境
python -m venv venv
source venv/bin/activate
# 在 Windows 上使用
source venv/Scripts/activate
# 安裝 Google 認證函式庫
pip install google-auth google-auth-oauthlib google-api-python-client
import os
from flask import Flask, redirect, url_for, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>歡迎來到我的 Google Fit!</h1><a href="/authorize">點此登入並授權</a>'
if __name__ == '__main__':
app.run(debug=True)
執行
在 main.py 中加入以下程式碼:
from google_auth_oauthlib.flow import Flow
from google.oauth2.credentials import Credentials
from google.auth.transport.requests import Request
import googleapiclient.discovery
@app.route('/authorize')
# 程式碼整理中,請稍等...(晚點補上)
在 main.py 中再加入以下程式碼:
@app.route('/oauth2callback')
# 程式碼整理中,請稍等...(晚點補上)
在 main.py 中再加入以下程式碼:
@app.route('/fetch_fit_data')
# 程式碼整理中,請稍等...(晚點補上)
python main.py
在瀏覽器開啟 http://127.0.0.1:5000/
點此登入並授權
溫馨小提醒:
這是查詢的期間,如果選到「未來日期」的話,API 回傳的數據將會是空的 (bucket 列表可能為空)。強烈建議將查詢時間設為有實際活動數據的日期來進行測試。
回傳 2025-09-25 當天的數據
舒安表示:
這次把 Google Fit 功能全部處理完後,才回過來拆解寫文章,所以才會一直出現「程式碼整理中,請稍等...(晚點補上)」,真是不好意思XD